.\"   $Id: sortlosig.3,v 1.1 2002/03/08 13:51:04 fred Exp $
.\" @(#)sortlosig.2 2.11 91/08/22 ; Labo masi cao-vlsi; Author : Frederic Petrot
.if t \{\
.so man1/alc_contents.mac
.XS \n%
.ti 0.2i
sortlosig
.XE
.XS2 \n%
.ti 0.2i
sortlosig
.XE2 \}
.TH SORTLOSIG 3 "October 1, 1997" "ASIM/LIP6" "MBK LOGICAL FUNCTIONS"
.SH NAME
sortlosig \- sort the logical signals of a figure by name
.so man1/alc_origin.1
.SH SYNOPSIS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void sortlosig(signals)
losig_list \(**\(**signals;
.ft R
.fi
.SH PARAMETERS
.TP 20
\fI\(**\(**signals\fP
Pointer to the head of the list of signals that is to be sorted
.SH DESCRIPTION
\fBsortlosig\fP sorts the list of signals pointed to by \fIsignals\fP.
The signals are sorted by names, but since names are not the signals
identifier, the \fBgetsigname\fP(3) routine is called to retrieve a
signal name.
.br
The standard \fBqsort\fP(3) function library is called for sorting.
Therefore, a table the number of signal wide is created, requiring
a lot of memory with big circuits.
Also, even if \fBqsort\fP(3) runs in n log n time, \fBgetsigname\fP(3)
is called twice, and the natural comparison function once, and this is
quite time consuming with big circuits.
It is recommended to use this function only if needed.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "mlo.h"
void savesorted(figname)
char \(**figname;
{
lofig_list \(**figure = getlosig(figname, 'A');
  sortlocon(&figure->LOCON);
  sortlosig(&figure->LOSIG);
  savelofig(figure);
}
.ft R
.fi
.SH SEE ALSO
.BR mbk (1),
.BR losig (3),
.BR addlosig (3),
.BR dellosig (3),
.BR getsigname (3),
.BR sortlocon (3),
.BR qsort (3).


.so man1/alc_bug_report.1

